package com.example.supplychainbackend.service.Impl;

import com.example.supplychainbackend.controller.dto.blockchain.UploadInfo;
import com.example.supplychainbackend.controller.dto.trace.CodeDto;
import com.example.supplychainbackend.controller.dto.trace.TimelineDto;
import com.example.supplychainbackend.controller.dto.trace.TraceInfoDto;
import com.example.supplychainbackend.dao.plan.PlanOrderDao;
import com.example.supplychainbackend.dao.production.ProductionProcessDao;
import com.example.supplychainbackend.dao.production.ProductionSchedulingDao;
import com.example.supplychainbackend.dao.production.ProductionWorkorderDao;
import com.example.supplychainbackend.dao.quality.InspectionOrderDao;
import com.example.supplychainbackend.dao.sales.ContractDao;
import com.example.supplychainbackend.dao.sales.OrderDao;
import com.example.supplychainbackend.dao.trace.TraceInfoDao;
import com.example.supplychainbackend.dao.warehouse.OutboundBillDao;
import com.example.supplychainbackend.entity.plan.PlanOrderEntity;
import com.example.supplychainbackend.entity.production.ProductionProcessEntity;
import com.example.supplychainbackend.entity.production.ProductionSchedulingEntity;
import com.example.supplychainbackend.entity.production.ProductionWorkorderEntity;
import com.example.supplychainbackend.entity.quality.InspectionOrderEntity;
import com.example.supplychainbackend.entity.sales.ContractEntity;
import com.example.supplychainbackend.entity.sales.OrderEntity;
import com.example.supplychainbackend.mapper.TraceMapper;
import com.example.supplychainbackend.service.BlockchainService;
import com.example.supplychainbackend.service.TraceService;
import com.example.supplychainbackend.tool.DateTimeUtils;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.UUID;

@Service
@RequiredArgsConstructor
public class BlockchainServiceMock implements BlockchainService {

    @Override
    public UploadInfo uploadEnterpriseCert(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadSalesContract(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadSalesOrder(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadDesignBOM(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadDesignECN(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadPurchaseReq(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadPurchaseOrder(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadProjectPlan(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadProjectDoc(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadProductionCert(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadProductionProcess(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadProductionOrder(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadProductionSchedule(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadLogisticDomestic(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadLogisticForeign(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadWarehouseInbound(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadWarehouseOutbound(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadQualityInspectionReq(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadQualityInspectionOrder(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadQualityUnqualified(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }

    @Override
    public UploadInfo uploadPlanOrder(String key, String contentJSON) {
        return new UploadInfo(UUID.randomUUID().toString(), DateTimeUtils.getCurrentDateTime());
    }
}
